<?php
/**
 * Sablony Controller for Ohlasky Component
 * @license		GNU/GPL
 */

// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

/**
 * Ohlasky Sablony Controller
 * @subpackage Components
 */
class OhlaskysControllerSablony extends OhlaskysController {
/**
 * constructor (registers additional tasks to methods)
 * @return void
 */
    function __construct() {
        parent::__construct();

    // Register Extra tasks
    //$this->registerTask( 'add'  , 	'edit' );
    }

    function add() {
        $je_aspon_jedno_akt_misto = $this->jsou_aktivni_mista();
        if ($je_aspon_jedno_akt_misto) {
            JRequest::setVar( 'view', 'sablony' );
            JRequest::setVar( 'layout', 'form'  );
            JRequest::setVar('hidemainmenu', 1);

            parent::display();

        } else {
            $msg = JText::_( 'Musíte zadat alespoň jedno aktivní místo!' );
            $link = 'index.php?option=com_ohlasky&view=mistas';
            $this->setRedirect($link, $msg);
        }

    }

    /**
     * display the edit form
     * @return void
     */
    function edit() {
        JRequest::setVar( 'view', 'sablony' );
        JRequest::setVar( 'layout', 'form'  );
        JRequest::setVar('hidemainmenu', 1);

        parent::display();

    }








    /**
     * save a record (and redirect to main page)
     * @return void
     */
    function save() {
        $chyba = '';
        $model = $this->getModel('sablony');
        JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');
        $table = JTable::getInstance('sablony','Table');
        $nazev = strval(JRequest::getVar('nazev',  ''));
        $table->set('nazev', $nazev);
        if (!$table->check()) {
            $chyba = $table->getError();
            if (empty($chyba)) {
                $chyba = 'Chyba při uložení události!';
            }
            $msg = $chyba;
            $link = 'index.php?option=com_ohlasky&view=sablonys';
            $this->setRedirect($link, $msg, 'error');
        } else {
            $_data = $model->getData();
            $id = $_data->id;
            $je_to_nova_sabl_bool = false;
            if (empty($id)) {
            //je to nova sablona
                $je_to_nova_sabl_bool = true;
                $nazevOk_bool = $model->neniStejnojmenna($nazev);
            } else {
            //došlo-li ke změně názvu,
            //musime overit, zda neexistuje
            //jina sablona se stejnym nazvem
                $nazevOk_bool = $model->neniStejnojmenna($nazev, $id);
            }
            
            if ($nazevOk_bool) {
                if ($model->store($post)) {
                    $_data = $model->getData();
                    $id = $_data->id;
                    if (empty($id)) {
                    //jde o ulozeni nove sablony
                        $id = $model->getNejvyssiId();
                    }
                    $msg = JText::_( 'Šablona byla uložena!' );
                    //$link = 'index.php?option=com_ohlasky&view=sablonys';
                    $link = 'index.php?option=com_ohlasky&view=udalosti_sablony&sablona_id='.$id;
                    $this->setRedirect($link, $msg);
                } else {
                    $msg = JText::_( 'Chyba při uložení šablony!' );
                    $link = 'index.php?option=com_ohlasky&view=sablonys';
                    $this->setRedirect($link, $msg, 'error');
                }
            } else {
                $chyba = 'Šablona s názvem '.$nazev.' již existuje!';
                $msg = JText::_( $chyba );
                $link = 'index.php?option=com_ohlasky&view=sablonys';
                $this->setRedirect($link, $msg, 'error');
            }
        }

    }

    /**
     * remove record(s)
     * @return void
     */
    function remove() {
        $model = $this->getModel('sablony');
        if(!$model->delete()) {
            $msg = JText::_( 'Chyba: Jedna nebo více šablon nemohly být vymazány!' );
        } else {
            $msg = JText::_( 'Šablona byla vymazána' );
        }

        $this->setRedirect( 'index.php?option=com_ohlasky', $msg );
    }

    /**
     * cancel editing a record
     * @return void
     */
    function cancel() {
        $msg = JText::_( 'Operace byla zrušena' );
        $this->setRedirect( 'index.php?option=com_ohlasky', $msg );
    }

    //vraci true/false, podle toho,
    //zda existuje aspon jedno
    //aktivni misto
    function jsou_aktivni_mista() {
        $jsou_aktivni_mista_bool = false;
        $model = $this->getModel('ohlasky_tydne');
        $mista_obj_list = $model->getAktivni_mista();
        if (is_array($mista_obj_list)) {
            $pocet_mist = count($mista_obj_list);
            if ($pocet_mist > 0) {
                $jsou_aktivni_mista_bool = true;
            }
        }
        return $jsou_aktivni_mista_bool;
    }

}

